1. Field of the Invention
This invention relates to a technique for improving the input/output (I/O) rate of serial digital data transfer, for example, for accessing data stored in periodic tracks of a plurality of asynchronous mass storage devices such as rotating disk drives in a computer system.
In large scale computer systems, there are generally two types of data processing tasks to be serviced, namely demand-oriented real time tasks and batch tasks. In many large scale systmes, the principal limitation on efficient computer usage is data input to and output from the central processing unit (CPU). For example, the ratio of average I/O access time to CPU memory access time can be as large as 500,000 to 1 for the most rapid mechanically accessed mass storage devices such as disk drives.
There is a basic conflict between fast response for real time systems, such as time-shared terminals, and maximum throughput. For maximum throughput, the first available data block must always be accessed, which may delay demand-oriented tasks. Moreover, there may be a conflict between the priority of a task and the length of time required to perform the task.
In a partial effort to solve the conflict problem, a master control program associated with the CPU called a Supervisor or an Executive program manages the tasks according to priorities, queuing instructions, issuing commands and responding to and interrupting requests for service in order to assure that all tasks are carried to completion.
However, CPU-generated priorities generally do not take into account the possibility of near instantaneous availability of data on peripheral I/O devices in a multiplexed (multiple channel) I/O system, since the devices do not maintain synchronism with the CPU. The result is waste of valuable CPU time while the CPU waits for the availability of a data storage position in a peripheral storage device.
2. Description of the Prior Art
In an effort to improve throughput and to avoid wasting CPU time, a portion of decision-making related to availability of an I/O device, and particularly related to identification of a data storage position on particular peripheral storage devices such as a disk drive, has been delegated to a peripheral I/O controller. One such system is described in U.S. Pat. No. 3,544,966. In such a multiplexing controller, a peripheral control unit periodically monitors the status of each associated I/O device and serves as an intelligent switch to connect and disconnect the I/O devices to a data communication channel coupled to the CPU. The controller polls the peripheral devices about availability and renders the decisions to connect and disconnect a peripheral device to the data channel.
A well known technique for effecting delegated availability decisions for disk drive controllers is Rotational Position Sensing (RPS). The operation of an RPS system is described in the IBM 3830/3330 Reference Manual, published by IBM Corporation, San Jose, California. Examples of commercially available RPS systems are the IBM Model 3330 disk drive with the RPS-based IBM Model 3830 controller and the ISS/Sperry Univac Model 7330 disk drive and 7830 controller.
in the RPS technique, the position of a periodically accessible interval, called a sector, on a rotating track of a disk is sensed relative to a track or disk index position, which is a fixed location on the moving disk. The relative positions of data records can be calculated by reference to sector position on rotating disks. The disk drive presenting the first-available sector containing requested data is electrically coupled by the controller through a channel to the CPU to effect data transfer. Upon completion, the controller releases control of the CPU channel and the disk. Thereafter, the rotational position of each disk drive is again polled, and the disk drive having the next first available data segment is then connected to the CPU data channel until the completion of data transfer. The RPS technique produces excellent throughput. Unfortunately, realtime requests receive no preference, so demand performance is relatively poor.
In a conventional multiplex-type data access system, one or more blocks of data may be available to the controller for access during a selected interval or window of time. The condition of overlap of windows is known as contention. In the prior art RPS technique the problem of contention has not been specifically addressed and has normally been handled by the peripheral controller unilaterally acting to select a particular disk drive. For example, the peripheral controller has generally selected the lowest numbered drive or the next higher drive after the last drive serviced. Thus, no preference has been given for priority of data types among stored data.
Moreover under the RPS system, control connection is maintained or otherwise reserved to the particular disk drive until the data channel becomes free and data transfer has been completed. As a consequence, slightly later beginning data blocks must await a complete recycling of the rotation period and possible interruptions by other disk drives before control can again be established to the drive on which is stored the later beginning data block. This delay can cause considerable interruption to demand-oriented processing such as time-shared terminal operations. Such delays are both costly and undesirable.
Therefore, a new technique is needed which provides for effective priority servicing of real time requests in lieu of a batch request where there is insufficient time to complete a batch request prior to servicing a real time request. Moreover, a computer peripheral control system is needed which minimizes the amount of CPU time wasted in waiting for the availability of a data I/O device.